package com.game.modular.game.act.cultivate.vo;

import io.swagger.annotations.ApiModelProperty;
import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.NoArgsConstructor;

import javax.validation.constraints.Max;
import javax.validation.constraints.Min;
import javax.validation.constraints.NotNull;

public class CultivateVo {
    public static class PlayerTavernVo {
        @Data
        public static class upgrade {
            @NotNull(message = "抽卡类型不能为空")
            @ApiModelProperty(value = "抽卡类型 1武将 2技能", required = true)
            private Integer type;
        }
    }

    public static class PlayerHeroVo {
        @Data
        @AllArgsConstructor
        @NoArgsConstructor
        public static class upgrade {
            @NotNull(message = "武将id不能为空")
            @ApiModelProperty("武将id")
            private Long heroId;
        }

        @Data
        public static class levelUp {
            @NotNull(message = "武将id不能为空")
            @ApiModelProperty("武将id")
            private Long heroId;

            @NotNull(message = "道具id不能为空")
            @ApiModelProperty(value = "道具id", required = true)
            private Long corePropId;

            @NotNull(message = "道具使用数量不能为空")
            @ApiModelProperty(value = "道具使用数量", required = true)
            private Long corePropNum;
        }

        @Data
        public static class equip {
            @NotNull(message = "武将id不能为空")
            @ApiModelProperty("武将id")
            private Long coreHeroId;

            @NotNull(message = "背包物品id不能为空")
            @ApiModelProperty("背包物品id")
            private Long playerBagId;
        }

        @Data
        public static class skill {
            @NotNull(message = "武将id不能为空")
            @ApiModelProperty("武将id")
            private Long heroId;

            @NotNull(message = "卡槽位置不能为空")
            @Min(value = 1, message = "卡槽位置不能小于1")
            @Max(value = 2, message = "卡槽位置不能大于2")
            @ApiModelProperty(value = "卡槽位置", required = true)
            private Integer skillSlot;

            @NotNull(message = "技能id不能为空")
            @ApiModelProperty("技能id")
            private Long coreSkillStarId;
        }

        @Data
        public static class  EqSelect {
            @NotNull(message = "武将id不能为空")
            @ApiModelProperty("武将id")
            private Long playerHeroId;
        }
    }

    public static class PlayerBagVo {
        @Data
        public static class use {
            @NotNull(message = "道具id不能为空")
            @ApiModelProperty(value = "道具id", required = true)
            private Long id;

            @NotNull(message = "道具使用数量不能为空")
            @ApiModelProperty(value = "道具使用数量", required = true)
            private Long num;
        }
    }
}
